1. Technical Field
The present disclosure relates generally to information management and more specifically to techniques for identifying and/or highlighting a graphic element.
2. Background Information
To better manage the complexities of modern designs, engineers, architects, and other professionals often turn to graphics programs. Using a graphics program, an engineer, architect, and other professional may create and manipulate models, renderings or other depiction of a project, for example, of a physical system or structure. They may also view and analyze already produced models, renderings or other depiction of a project.
Typically, graphics programs provide some mechanism to allow a user to select a graphic element, i.e., a visual representation that corresponds to a component being rendered or otherwise displayed, to obtain information about that element. This information may include properties of the graphic element. For example, a graphic element may be a visual representation that corresponds to a pipe in a water distribution system being displayed, and the properties may include things such as the material the pipe is made of, the characteristics of the fluids the pipe can carry, a safe operating temperature of the pipe, and the like. Typically, such properties are not constantly displayed by a graphics program, as such detail would clutter the user interface. Accordingly, a user may be required to select a particular graphic element, and then somehow indicate the graphic element's properties are desired.
To select a graphic element, a user may position a selection cursor or other pointer at a point (an “input point”) over the graphic element. According to one technique, such an input point may be used in conjunction with a geometric definition of is graphic elements, and, more specifically, with a graphic element range of the graphic elements, to select a particular graphic element. Typically, when graphic elements are created, so too are geographic definitions that, among other things, include a graphic element range that defines a space (e.g., a three dimensional cube) that encompasses the graphic element. When a user later selects an input point, the user's input point may be transformed from a coordinate space of the display screen to a coordinate space used with the graphic elements. For three-dimensional graphics programs, this may result in a “selection vector.” Next, the graphics program may determine if this vector intersects any graphic element's graphic element range. A variety of known techniques, such as “range trees,” may be used to help accomplish this task. For each element whose range intersects the selection vector, the graphics program may calculate a magnitude, and if this magnitude is less than a tolerance, the element may be selected.
According to another technique, the user's input point may be used to define a “pick window” around the user's input point. The extent of the pick window may be defined by a “pick tolerance.” This technique may exploit display lists to identify graphic elements displayed in the “pick window.” However, this technique also typically requires geometric definitions of graphic elements be available in order to function properly.
Sometimes geometric definitions and other information needed for range trees and pick windows are simply not available. For instance, some types of graphics programs use a client server approach, where a client application is remote from the server. In these applications, the client may not have access to the geometric definitions available on the server. One example of this type of application is a video streaming application, where the client receives a collection of image frames from a server. The stream of images may represent an animation of three-dimensional geometries, the movements of a user through a three dimensional space, or the like. In such cases, geometric definitions of objects being shown in the streaming video may be known by the server, but not by the client, where graphic element selections are being made.
Further, the extensive calculations needed for range trees and pick windows may be impractical for some types of computing devices, for example, for certain mobile appliances with limited processing power, limited storage space, etc.
Accordingly, there is a need for improved techniques for identifying and/or highlighting a graphic element that may address these and/or other shortcomings.